package com.hspedu.reflection.calss;

import com.hspedu.Cat;
import com.hspedu.Dog;

/**
 * class 类特点的梳理
 */
public class Class01 {
    public static void main(String[] args) throws ClassNotFoundException {
        // Class类对象不是new出来的，而是系统创建的
        //（1)传统方法
        /*  ClassLoader类
            public Class<?> loadClass(String name) throws ClassNotFoundException {
                return loadClass(name, false);
            }
         */
//        Cat cat = new Cat();

        //（2)反射
        /*  ClassLoader类
            public Class<?> loadClass(String name) throws ClassNotFoundException {
                return loadClass(name, false);
            }
         */
        Class cls1 = Class.forName("com.hspedu.Cat");

        //对于某个类的Class对象，在内存中只有一份，因为类只加载一次
        Class cls2 = Class.forName("com.hspedu.Cat");

        System.out.println(cls1.hashCode());
        System.out.println(cls2.hashCode());

        Class cls3 = Class.forName("com.hspedu.Dog");
        System.out.println(cls3.hashCode());
    }
}
